package Chapter5;

public class StringMethodTest {
    public static void main(String[] args) {
        String s= "heLlo"; //声明字符串方式一
        String s1=new String("Hello"); //声明字符串方式二
        String s2=new String("Hello1212");
        String str=" world";

        //以下为公共方法
        System.out.println(s);
        System.out.println(s.substring(2)); //截取beginIndex到末尾的子串
        System.out.println(s.length()); //返回字符串长度，即有几个字符，和下标无关
        System.out.println(s.charAt(1)); //返回下标为1的字符

        //以下为String独有方法
        System.out.println(s.replace("e","t")); //将某个字符替换成新字符
        System.out.println(s.toLowerCase()); //将所有字符转为小写
        System.out.println(s.toUpperCase()); //将所有字符转为大写
        System.out.println(s.concat(str)); //将另一个字符串对象连接到末尾
        System.out.println(s+str.trim()); //删除字符串中的空白
        System.out.println(s.startsWith("he")); //判断he是否为字符串的前缀
        System.out.println(s.equalsIgnoreCase(s1)); //判断两个字符串，若长度、ASCII码相同则true，不区分大小写
        System.out.println(s.equals(s1)); //判断两个字符串，若长度、ASCII码相同则true，区分大小写
        System.out.println(s==s1); //判断两个字符串，若长度和ASCII码相同则true，判断的是内存地址；由于每个对象的内存地址不同，因此为false
        System.out.println(s.compareTo(s1)); //比较长度或ASCII码，若不同返回ASCII码差值，默认十进制
        System.out.println(s.compareToIgnoreCase(s1)); //比较长度或ASCII码，若不同返回ASCII码差值，默认十进制，不区分大小写
        System.out.println(s.compareTo(s2)); //比较长度或ASCII码，若长度不同返回长度的差值

        System.out.println(String.valueOf(22).getClass()); //将int型22转为字符串，由于字符串是对象，因此可以直接用getClass查询类型
        //getClass（）和.class的区别：由于将int型22转为String后是字符串对象，因此可以使用getClass获取对象的类型。
        //另有.class表示返回类的类型，如BankAccount.class。

        String c="HelloWorld";
        String b="Wo";
        System.out.println(c.regionMatches(true,5,b,0,2));
        //比较两个字符串在某一区域的子串是否相等
        //参数true开启区分大小写，被查找的字符串是c且从下标5开始，查找的字符串为b且从下标0开始，选取的区域长度为2。结果为true。

    }
}
